#include <string.h>
#include "nvs_flash.h"
#include "esp_event.h"
#include "esp_log.h"
#include "mqtt_client.h"

#include "mywifi.h"
#include "mymqtt.h"

static const char *TAG = "main";

void app_main(void)
{
  ESP_LOGI(TAG, "Startup..");
  ESP_LOGI(TAG, "Free memory: %" PRIu32 " bytes", esp_get_free_heap_size());
  ESP_LOGI(TAG, "IDF version: %s", esp_get_idf_version());

  ESP_ERROR_CHECK(nvs_flash_init()); // 初始化 flash

  ESP_ERROR_CHECK(esp_event_loop_create_default()); // 以默认方式创建循环事件组（WiFi 相关事件依赖）

  wifi_init(); // 初始化 WiFi 并自动连接默认的网络

  esp_register_shutdown_handler(&wifi_shutdown); // 注册重启时的回调函数 （防止已重启的设备占用 AP 的网络接口）

  iotda_mqtt_init(); // 初始化 MQTT 相关组件
}

